package com.tencent.welink.api.space.object.geo;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.tencent.welink.api.OpenApiTokenChange;
import com.tencent.welink.api.base.WelinkOpenApi;
import com.tencent.welink.config.BussinessConfig;
import com.tencent.welink.util.CrontabUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.Map;

/**
 * @Description:  * 保存或者编辑自定义边界对象。
 * @Author: limye
 * @CreateDate: 2020-6-9
 * @Version: V1.0
 */
public class SaveMetaArea extends WelinkOpenApi {

    private static final Logger log = LogManager.getLogger(SaveMetaArea.class);

    public SaveMetaArea(){
        super("/space/geo/saveMetaArea",false);
    }


    @Override
    public void displayResult(String result) {
    }


    public static void main(String[] args) {
        new BussinessConfig();
        CrontabUtil.addTaskInRate(new OpenApiTokenChange(), BussinessConfig.loginDurationMinutes,true);

        //实例化对象
        SaveMetaArea instance = new SaveMetaArea();

        /**
         * 参数名	类型	必填	数据约束	描述
         * token	String	是	非空且长度固定128个字符	动态密钥，有效期20分钟，需重新登录
         * project_id	String	否	非空	项目编号
         */
        //添加参数
        Map<String,Object> map = instance.getExtendsPara();

        /**
         * 包体参数
         * 参数名
         * 类型
         * 必填
         * 数据约束	描述
         * wId	String	否	长度固定36位	对象的唯一标识；若有 wId，表示更新；若无wId，表示新增
         * level	Integer	是	数字，范围1-9	自定义空间对象所在空间层级
         * poiCode	String	是	非空	自定义空间对象的空间分类编码
         * parentPoiId	String	是	非空	自定义空间对象的父级对象的 PoiId
         * mode	String	是	非空，point 或 polygon	自定义空间的模式；point 表示中心点模式，使用中心点和半径表示；polygon 表示多边形模式，使用多个顺序点表示
         * center	Object	否	当mode为 point时为必须	中心点模式的自定义边界对象的中心点坐标，经纬度
         * radius	Number	否	当 mode 为 point 时为必须	中心点模式的自定义边界对象的半径，单位米
         * points	List	否	当mode为 polygon时必须	多边形模式的自定义边界对象的各点坐标，经纬度；注意顺序有关
         */
        JSONObject paramJson1 = new JSONObject();
        paramJson1.put("name","测试123");
        paramJson1.put("level",8);
        paramJson1.put("height",-6.3);
        paramJson1.put("poiCode",99901000);

        JSONObject paramJson2 = new JSONObject();
        paramJson2.put("parentPoiId","4403002230220001");
        paramJson2.put("mode","point");
        JSONObject paramJson3 = new JSONObject();
        paramJson3.put("longitude",113.935250639562);
        paramJson3.put("latitude",22.522482718566);
        paramJson2.put("center",paramJson3);
        paramJson2.put("radius",400);

        paramJson1.put("extMetaArea",paramJson2);

        instance.getBodyPara().put("",paramJson1);

        //执行HTTP请求及展示结果
        instance.DoHttp();
        CrontabUtil.shutdown();

    }
}
